go/types.TypeParam.bound (field)
20 uses
go/types (current package)
decl.go#L705: tparams[index+i].bound = bound
infer.go#L512: tparams2[i].bound = check.subst(pos, tparam.bound, renameMap, nil, check.context())
instantiate.go#L221: bound := check.subst(pos, tpar.bound, smap, nil, ctxt)
object.go#L590: typ = t.bound
operand.go#L213: WriteType(&buf, tpar.bound, qf) // do not compute interface type sets here
predicates.go#L136: if tpar, _ := Unalias(t).(*TypeParam); tpar != nil && tpar.bound != nil {
predicates.go#L137: iface, _ := safeUnderlying(tpar.bound).(*Interface)
predicates.go#L371: ybound := check.subst(nopos, ytparams[i].bound, smap, nil, ctxt)
predicates.go#L372: if !c.identical(xtparam.bound, ybound, p) {
signature.go#L251: recvTPar.bound = check.subst(recvTPar.obj.pos, baseTPar.bound, smap, nil, check.context())
typeparam.go#L30: bound Type // any type, but underlying is eventually *Interface for correct programs (see TypeParam.iface)
typeparam.go#L51: typ := &TypeParam{check: check, id: id, obj: obj, index: -1, bound: constraint}
typeparam.go#L76: return t.bound
typeparam.go#L89: t.bound = bound
typeparam.go#L115: bound := t.bound
typeparam.go#L137: t.bound = ityp // update t.bound for next time (optimization)
typestring.go#L419: if tpar.bound != prev {
typestring.go#L426: prev = tpar.bound